using System.Collections.Generic;
using System.Security.Principal;
using CSI.Directory.Core.Model;


namespace CSI.Directory.Core.Services
{
    public interface IUserService
    {
        string SaltAndHashPassword(User u);
        TransactionResult LoginUser(string email, string password, bool me);
        bool IsAuthenticated(string username, string password);
        void LogoutUser();
        User GetUserById(int id);
        
        User GetUserByEmail(string email);
        TransactionResult RegisterUser(string firstname, string lastname, string password, string email);
        TransactionResult UpdateUser(int id, string address, string city, string state, string zipcode, string phone, string package1, string package2);
        TransactionResult AddUserToCRM(int id);
        TransactionResult RegisterUser(string firstname, string lastname, string password, string email, string role);
        IList<User> GetAllUsers();
        TransactionResult ChangePassword(int id, string password);
        TransactionResult RenewUser(int id, string renewal);
        TransactionResult ResetPassword(string email);
    }
}